﻿using System;
using System.Collections.ObjectModel;
using System.Runtime.Serialization;

namespace ET.Score.Service.Dtos.Ats
{
    [DataContract]
    public class TrainDataDto
    {
        [DataMember]
        public byte ActiveDir { get; set; }

        [DataMember]
        public DateTime ArriveTime { get; set; }
        [DataMember]
        public byte Atp { get; set; }
        [DataMember]
        public short AtsId { get; set; }
        [DataMember]
        public byte BackDeopCode { get; set; }
        [DataMember]
        public byte BlockMode { get; set; }

        [DataMember]
        public byte ClearoffStatus { get; set; }
        [DataMember]
        public byte Conflict { get; set; }
        [DataMember]
        public short DestinationNum { get; set; }
        [DataMember]
        public byte DoorState { get; set; }
        [DataMember]
        public short DriverNum { get; set; }
        //[DataMember]public override ElementFlag ElementType { get; }
        //[DataMember]public override FixedElementTypeFlag FixedElementType { get; }
        [DataMember]
        public short HeadNum { get; set; }

        [DataMember]
        public byte HoldTrain { get; set; }
        [DataMember]
        public bool isVecileTrain { get; set; }

        [DataMember]
        public byte LastworkFlag { get; set; }

        [DataMember]
        public DateTime LaunchTime { get; set; }

        [DataMember]
        public Collection<short> LinkList { get; set; }
        [DataMember]
        public byte LocFlag { get; set; }

        [DataMember]
        public byte LocMes { get; set; }
        [DataMember]
        public short LogicSectionId { get; set; }
        [DataMember]
        public short ManageCI { get; set; }

        [DataMember]
        public short NextPlatId { get; set; }
        [DataMember]
        public byte OnScheduleInfo { get; set; }
        [DataMember]
        public int OtpTime { get; set; }
        [DataMember]
        public short PhySectionId { get; set; }
        [DataMember]
        public int PrimaryKey { get; set; }
        [DataMember]
        public byte RunLevel { get; set; }
        [DataMember]
        public byte RunMode { get; set; }
        [DataMember]
        public byte RunState { get; set; }

        [DataMember]
        public byte SecTimeout { get; set; }
        [DataMember]
        public short SectionLocationId { get; set; }
        [DataMember]
        public byte SectionType { get; set; }
        [DataMember]
        public byte SequenceNum { get; set; }
        [DataMember]
        public byte SkipStop { get; set; }
        [DataMember]
        public byte SleepAwakeStatus { get; set; }
        [DataMember]
        public byte StateType { get; set; }
        [DataMember]
        public byte StationId { get; set; }
        [DataMember]
        public short TableNum { get; set; }

        // [DataMember]public TrainDataClass.TrainAlarm TrainAlarmInfo { get; set; }

        [DataMember]
        public byte TrainArrFlag { get; set; }

        [DataMember]
        public byte TrainArriveStationTimeFlg { get; set; }
        [DataMember]
        public byte TrainDir { get; set; }
        [DataMember]
        public byte TrainDirection { get; set; }

        [DataMember]
        public float TrainHeadFirstY { get; set; }

        [DataMember]
        public float TrainHeadLinkOffset { get; set; }

        [DataMember]
        public short TrainHeadLnkId { get; set; }

        [DataMember]
        public float TrainHeadSecondY { get; set; }
        [DataMember]
        public short TrainId { get; set; }

        [DataMember]
        public float TrainMiddleX { get; set; }

        [DataMember]
        public float TrainMiddleY { get; set; }
        [DataMember]
        public short TrainNum { get; set; }
        [DataMember]
        public bool TrainOnLine { get; set; }
        [DataMember]
        public byte TrainSort { get; set; }

        [DataMember]
        public byte TrainStartCountDownTimeFlg { get; set; }
        [DataMember]
        public byte TrainStopSteadilyInfo { get; set; }

        [DataMember]
        public short TrainStopTime { get; set; }

        [DataMember]
        public short TrainTailLinkId { get; set; }

        [DataMember]
        public float TrainTailLinkOffset { get; set; }
        [DataMember]
        public byte TwinkleState { get; set; }

    }
}